package top.fangw.tenant.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import top.fangw.common.core.entity.BaseIdNameVo;
import top.fangw.tenant.pojo.dto.DatasourceInfoPageQueryDto;
import top.fangw.tenant.pojo.entity.DatasourceInfo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 用途：用于保存系统中除基础信息外的所有数据源信息 服务类
 * </p>
 *
 * @author fangw
 * @since 2024-01-16
 */
public interface IDatasourceInfoService extends IService<DatasourceInfo> {

    /**
     * 添加数据源信息
     * @param datasourceInfo 数据源信息
     * @return 添加结果
     */
    int add(DatasourceInfo datasourceInfo);

    /**
     * 删除数据源
     * @param id 数据源id
     */
    void delete(String id);

    /**
     * 分页查询数据源信息
     * @param pageQueryDto 分页查询条件
     * @return 分页查询结果
     */
    IPage<DatasourceInfo> pageQuery(DatasourceInfoPageQueryDto pageQueryDto);

    /**
     * 测试数据源连接
     * @param datasourceInfo 数据源信息
     */
    void testConnection(DatasourceInfo datasourceInfo);

    /**
     * 获取数据源下拉列表
     * @return 数据源下拉列表
     */
    List<BaseIdNameVo> listDataSource();

}
